package main

import (
	"fmt"
)

func main() {

	var a [5]int  // 定义一个长度为5 存放int类型的数组
	var b [10]int // 定义一个长度为10 存放int类型的数组

	a = [5]int{1, 2, 3, 4, 5}
	b = [10]int{1, 2, 3}
	fmt.Println(a) // [1 2 3 4 5]
	fmt.Println(b) // [1 2 3 0 0 0 0 0 0 0]

	var d = [3]string{"a", "b", "c"}
	fmt.Println(d) // [a b c]

	// ... 表示让编译器数有多少初始值
	e := [...]int{1, 2, 3, 4, 5, 6, 6, 7, 7, 8}
	fmt.Printf("%T\n", e) // [10]int

	// 根据索引值初始化数组
	var f [5]int
	f = [5]int{3: 2}
	fmt.Println(f) // [0 0 0 2 0]

	// 根据索引取值
	fmt.Println(f[3]) // 2

	// 遍历数组
	for i := 0; i < len(f); i++ {
		fmt.Println(f[i])
	}

	// 使用range打印
	for index, val := range f {
		fmt.Println(index, val)
	}
}
